The growth of the Internet has spawned a variety of industries and applications. Browser technology, the computer applications used to navigate the Internet and the World Wide Web (WWW), have become a nearly universal computer application paradigm. The ease with which users are able to navigate between various Web pages resulted in a new generation of browser-centric users. Web pages are typically formatted in hypertext markup language (HTML). HTML is a format-descriptive meta language that describes the visual formatting and layout of the Internet documents. These documents are generally delivered to users over the Internet using hypertext transfer protocol (HTTP). HTTP is an address-oriented transport protocol that utilizes uniform resource locators (URLs) to identify the locations of specific Web pages. Web browsers use these URLs to navigate between the various HTML pages that a user desires to see.
In comparison, most general computer applications, whether on the desktop or Web-based, utilize a direct and application-specific interface with the user. Therefore, users interact with various general computer applications using navigation means that are generally different from their browser experience. With the increased popularity and usability of browsers, however, many software manufacturers have modified various user interface (UI) elements of general applications to mimic the ease and familiarity of the browser experience.
One shortcoming to general computer applications that has generally escaped a browser-like UI feature is the “Back” button. Browser users are familiar with the standard browser navigation tools, such as Back, Forward, Home, Favorites, and the like. Without these tools, it is likely that users would not have as good an experience in navigating the Web as they currently enjoy. The WWW is typically well-suited to such navigation tools because of the address-oriented nature of the URL-based transport protocol, HTTP. As a user “surfs” or hypertext jumps from one page to the next, a history of the user's interactions is easily recorded and managed. The URL of each page may simply be stored in some kind of storage register or memory location. As the user desires to return to a particular Web page, he or she may either sequentially click the Back button, until the desired page is reached, or, if the user goes past the desired page, he or she may click the Forward button to return through the address list. In some browser embodiments, the user may be shown several historical URLs, or the Web page title associated with that URL, at once, allowing for random navigation by directly selecting the particular address the user desires to jump to. Similarly, if a user desires to save a particular Web page address for future direct reference, the URL for that page may be stored in a Favorites list.
In contrast, general computer applications do not typically operate on an address-based mechanism within the operation of the application itself. General computer applications usually execute sequential code or bytecode compiled from a declarative computer language, such as MACROMEDIA, INC.'s ACTIONSCRIPT™, and SUN MICROSYSTEM INC.,'s JAVASCRIPT™, that does not have a universally-specific indicator of a particular view, page, or process step in the application. Therefore, the application generally has no way for recording a particular user interaction to which the user can then return simply by clicking a Back button.
For example, MICROSOFT CORPORATION'S OUTLOOK™ email program allows interaction with email, whether incoming, outgoing, saved, sorted, and the like. While any one particular box, such as the inbox, may have a Back and Forward button to traverse the various emails in that box, those navigational tools typically work within the context of that box. Moreover, those interface elements usually work in the context of location. Therefore, if a user begins looking at the first email, then selects to view the tenth email, using the back button would only get the user to the ninth email, even though the user had yet to actually view the ninth email. Similarly, if a user views emails that have been sorted in a specific folder and then moves to view emails in the inbox, pressing the back button will not return the user to viewing the email in the specific folder.
Wizards are computer applications that are developed to step a user through a particular process. The Wizard, somewhat like a browser, displays a view screen to a user for providing some information or to request a particular action. Once the action is taken, it moves to the next view screen in the Wizard sequence. Wizards will typically have a Back button, but this Back button works only in a sequential method. Therefore, in view screen five, if the user selects the Back button, the user is “backed up” to view screen four. These navigation features in a Wizard do not necessarily operate on the basis of the user's interaction history, but merely operate on the sequence of the Wizard itself. A user desiring to go completely back to the beginning of the Wizard would need to repeatedly select the Back button in order to get there. Moreover, if, during operation of the Wizard, the user accessed another application running on the user's computer, the Wizard Back button would not take the user back to this separate application.
Another example of an attempt by computer software manufacturers to implement Browser-like navigation are large form-type applications. One example of a form-type application would be INTUIT CORPORATION's TURBOTAX™. The function of the TURBOTAX™ software is to step a user through a series of fill-in form pages in order to complete various federal income tax return forms. Recent versions of TURBOTAX™ have included not only a Wizard-like Back button, which works sequentially, but also a hypertext-coded outline of the various major steps allowing the user to hypertext jump to any portion of the fill-in form process. Again, while this navigation allows the user to jump to various places in the application, it is implemented purely through mapping of the application. The various user interactions with TURBOTAX™ are not recorded for purposes of navigation. Therefore, if a user selected to return to the deductions section, he or she would be taken to the first page of the deductions section regardless of whether or not the user had even been to that page before. While this navigation feature allows the user more flexibility in navigating the application, there is still no way to directly track the user's interactions.
Recently, computer applications have been made available to users to access over the Internet. These Web-based or on-line applications are generally accessed by the user through the container of the Web browser. The Web browser displays an HTML page, however, the HTML page contains a player or other type of application container that runs the visual representation of the Web-based application to the user. In these types of applications, if the user were operating the Web-based application, the browser Back button would not necessarily take the user back to the preceding step of the application, but may, in fact, take the user back to the Web page that preceded the user's activation of the Web-based application. Thus, the Back button would exit the user from the application altogether.
In order to compensate for this problem with on-line applications, techniques have been developed to communicate with the browser that the user is interacting with an on-line application that is being displayed within the browser. Such features are typically implemented using a hidden Web page, referred to as an invisible frame or i-frame. When a user calls an on-line application, an HTML shell is loaded with the container on which the on-line application will be displayed. One example of such a container may be MACROMEDIA INC.'s MACROMEDIA FLASH™ PLAYER. Along with the MACROMEDIA FLASH™ PLAYER will be the i-frame. An i-frame is a browser element which is a floating frame, sub-navigational element within the browser window. Navigation that occurs within the i-frame is remembered in the browser's history mechanism. Therefore, when a user selects Back or Forward, the history information from the i-frame is used.
In the example of a MACROMEDIA FLASH™ PLAYER container, the i-frame will also includes a Small Web Format (SWF) file. SWF files are the native file format in MACROMEDIA FLASH™. The SWF file within the I-frame will be used to communicate with the main SWF file running in the MACROMEDIA FLASH™ PLAYER container. In these applications, the developer has generated state book marks which mark places in the application for use with a navigational feature. For example, a developer may place code in the application that state A is an entry screen, while state B is a processing screen, and state C is a confirmation screen. When the application is running and a user moves from the entry screen to the processing screen, the i-frame notes the change from state A to state B in a URL having query information concerning the actual state of the application. The browser history feature remembers the new URL of the processing screen, which is state B for the application. If the user were to select the Back button on the browser, the browser pulls the previous URL from its history, passes it to the i-frame, which, in turn, uses the query information from the previous URL to communicate to the main SWF file running on the MACROMEDIA FLASH™ PLAYER container and reload state A to the main SWF file. Therefore, the user is taken back to state A or the entry screen of the on-line application. While this method allows for history navigation within an on-line application, the application developers hard codes each state identifier into the application, adding a substantial amount of work and expense to the development of the application.